module Persona (Persona, nuevaP, nombreP, sexoP, edadP, gustosP, agregarGustoP)

where

import Tipos

data Persona =  P Nombre Sexo Edad | GustoP Gusto Persona deriving (Show, Eq)


nuevaP :: Nombre -> Sexo -> Edad -> Persona
nuevaP n s e = (P n s e) 

nombreP :: Persona -> Nombre
nombreP (P n _ _) = n 
nombreP (GustoP g x) = nombreP x

sexoP :: Persona -> Sexo
sexoP (P _ s _) = s
sexoP ( GustoP g  x ) = sexoP  x

edadP :: Persona -> Edad
edadP (P _ _ e) = e 
edadP (GustoP g x) = edadP x 

gustosP :: Persona -> [Gusto] 
gustosP (P _ _ _ ) = []
gustosP (GustoP g  x)=  g:gustosP x 

agregarGustoP :: Persona -> Gusto -> Persona
agregarGustoP (P n s e) g = GustoP g (P n s e)
agregarGustoP (GustoP k p) g  = GustoP  g (GustoP k p)






